// 方法已在全局注册,使用方法时 this.$utils.方法名(参数) 

//时间格式化
function formatTime(time) {
	if (typeof time !== 'number' || time < 0) {
		return time
	}

	var hour = parseInt(time / 3600)
	time = time % 3600
	var minute = parseInt(time / 60)
	time = time % 60
	var second = time

	return ([hour, minute, second]).map(function(n) {
		n = n.toString()
		return n[1] ? n : '0' + n
	}).join(':')
}
//经纬度格式化
function formatLocation(longitude, latitude) {
	if (typeof longitude === 'string' && typeof latitude === 'string') {
		longitude = parseFloat(longitude)
		latitude = parseFloat(latitude)
	}

	longitude = longitude.toFixed(2)
	latitude = latitude.toFixed(2)

	return {
		longitude: longitude.toString().split('.'),
		latitude: latitude.toString().split('.')
	}
}
//时间戳转换为微信朋友圈时间格式
var dateUtils = {
	UNITS: {
		'年': 31557600000,
		'月': 2629800000,
		'天': 86400000,
		'小时': 3600000,
		'分钟': 60000,
		'秒': 1000
	},
	humanize: function(milliseconds) {
		var humanize = '';
		for (var key in this.UNITS) {
			if (milliseconds >= this.UNITS[key]) {
				humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
				break;
			}
		}
		return humanize || '刚刚';
	},
	format: function(dateStr) {
		var date = this.parse(dateStr)
		var diff = Date.now() - date.getTime();
		if (diff < this.UNITS['天']) {
			return this.humanize(diff);
		}
		var _format = function(number) {
			return (number < 10 ? ('0' + number) : number);
		};
		return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDay()) + '-' +
			_format(date.getHours()) + ':' + _format(date.getMinutes());
	},
	parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串，转化为一个Date对象
		var a = str.split(/[^0-9]/);
		return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
	}
};
//获取当前时间 年-月-日
const nowDate = function() {
	let nowDate = new Date();
	let date = {
		year: nowDate.getFullYear(),
		month: nowDate.getMonth() + 1,
		date: nowDate.getDate(),
	}
	let month = ''
	let lifeday = ''
	if(date.month<10){
		month = '0'
	}
	if(date.date <10){
		lifeday = '0'
	}
	console.log(date);
	let systemDate = date.year + '-' + month + date.month + '-' + lifeday + date.date;
	return systemDate
}

//获取当前页面以及参数
const getUrl = function() {
	const pages = getCurrentPages()
	const currentPage = pages[pages.length - 1]
	const url = currentPage.route
	const options = currentPage.options
	let urlWithArgs = `/${url}?`
	for (let key in options) {
		const value = options[key]
		urlWithArgs += `${key}=${value}&`
	}
	urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1)
	return urlWithArgs
}

//----------------------------正则匹配--------------------

//匹配帐号
const regUid = function(str) {
	return !RegExp(/^\w{6,12}$/).test(str);
}

const regName = function(str) {
	return !RegExp(/^[\u4e00-\u9fa5]{2,5}$/).test(str);
}

//输入是否全为空
const regAir = function (str) {
  return str.split(" ").join("").length
}

//匹配身份证
const regIDC = function(str) {
	return !RegExp(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/).test(str);
}
//匹配手机号
const regPhone = function(str) {
	// return "12313"
	return !RegExp(/^1[345789]\d{9}$/).test(str);
}

//手机号以 3 - 4 - 4 格式显示
const regPhoneFormat = function(str) {
	return str.replace(/(\d{3})(\d{4})/, "$1 $2 "); //添加空格
}

//匹配验证码
const regCheckNum = function(str) {
	return !RegExp(/^\d{4}$/).test(str);
}

//匹配邮箱格式
const regEmail = function(str) {
	return !RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/).test(str);
}


export default {
	formatTime: formatTime,
	formatLocation: formatLocation,
	dateUtils: dateUtils,
	regUid: regUid,
	regPhone: regPhone,
	regPhoneFormat: regPhoneFormat,
	regName: regName,
	regIDC: regIDC,
	regEmail: regEmail,
	regCheckNum: regCheckNum,
	getUrl: getUrl,
	nowDate:nowDate,
	regAir: regAir
}
